package cn.wangjie.spark.point

import org.apache.spark.sql.{Dataset, SparkSession}

/**
 * Spark 2.x开始，提供了SparkSession类，作为Spark Application程序入口，
 * 用于读取数据和调度Job，底层依然为SparkContext
 */
object SparkStartPoint {

  def main(args: Array[String]): Unit = {
		
		// TODO: 1. 创建SparkSession实例对象，通过建造者模式
		val spark: SparkSession = SparkSession.builder()
			// 设置应用名称
    		.appName(this.getClass.getSimpleName.stripSuffix("$"))
    		// 设置运行模式
    		.master("local[2]")
    		.getOrCreate()
		// 导入隐式转换函数
		import spark.implicits._
		
		// TODO: 2. 加载文本数据
		val inputDS: Dataset[String] = spark.read.textFile("datas/wordcount/wordcount.data")
		
		println(s"Count = ${inputDS.count()}")
		inputDS.show(5, truncate = false)
		
		// 应用结束，关闭资源
		spark.stop()
	}
	
}
